﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dacli.modelos
{
    public class Pedidos : Entidad
    {
        public Clientes cliente;
        public Pacientes paciente;        
        public Iden iden;
        public PedidoEstado estado;
        public Factura factura;
        public TiposPago tiposPago;
        public DateTime fecha;
        public DateTime hora;
        public int pacienteDiario;
        public string observacion;
        public DateTime fechaCancelacion;
        public bool anulada;
        public double recargo;
        public double descuento;
        public bool entregado;
        public double iva;
        public string nota;
        public double subtotal;
        public List<dacli.modelos.PedidoDetalle> listaPedidoDetalle;

        public  Pedidos()
        {
            init();
            fecha = DateTime.MinValue;
            paciente = new Pacientes();
            cliente = new Clientes();
            iden = new Iden();
            estado = new PedidoEstado();
            tiposPago = new TiposPago();
            factura = null;
            pacienteDiario = -1;
        }

        public void init()
        {
            listaPedidoDetalle = new List<dacli.modelos.PedidoDetalle>();
            this.id = -1;
        }

        public void copiarCliente()
        {
            cliente.id = paciente.id;
            cliente.cedula = paciente.cedula;
            cliente.nombre = paciente.nombre;
            cliente.direccion = paciente.direccion;
            cliente.telefono = paciente.telefono;
        }

        public void addDetalle(dacli.modelos.PedidoDetalle pedidoDetalle)
        {
            listaPedidoDetalle.Add(pedidoDetalle);
        }

        public void addDetalle(dacli.modelos.clases.GridDetalle gridDetalle)
        {
            dacli.modelos.PedidoDetalle pedidoDetalle = new dacli.modelos.PedidoDetalle();
            pedidoDetalle.examen = gridDetalle.getExamenes();   
            pedidoDetalle.precio = gridDetalle.precio;
            pedidoDetalle.descuento = gridDetalle.descuento;            
            listaPedidoDetalle.Add(pedidoDetalle);
        }
        public void removerDetalle(PedidoDetalle pedidoDetalle)
        {
            
            foreach (var a in listaPedidoDetalle) {
                if (a.examen.id == pedidoDetalle.examen.id) {
                    listaPedidoDetalle.Remove(a);
                    break;
                }
            }
        }
    }
}
